// PGLBarNumbering.h: interface for the CPGLBarNumbering class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_PGLBARNUMBERING_H__BEC4D835_87A8_40E5_A926_89AEC5060158__INCLUDED_)
#define AFX_PGLBARNUMBERING_H__BEC4D835_87A8_40E5_A926_89AEC5060158__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <pgl/core/PGLNumbering.h>
#include <pgl/core/PGLBar.h>

class CPGLBarNumbering : public CPGLNumbering  
{
PGL_DECLARE_DYNCREATE( CPGLBarNumbering );
public:
	CPGLBarNumbering();
	virtual ~CPGLBarNumbering();

	//! sets the pointer to the bar object
	void SetBar( CPGLBarPtr pBar);
	//! returns the pointer to the bar object
	CPGLBarPtr GetBar();
	//! Clears the bar pointer
	void Clear();

	/*! \brief Processes the limits

	\param dStart minimum of coordinate
	\param dEnd maximum of coordinate
	\param gfx graphic interface
	\return dStart new minimum
	\return dEnd new maximum

	\sa CPGLNumbering::ProcessLimits
	*/
	virtual void ProcessLimits(double& dStart, double& dEnd, gfxinterface::CGfxInterface& gfx)=0;

	//! \name Serialization and debugging
	//@{
	//! Serialization
	void SerializeXML( CPGLArchive& ar);
	#ifdef _DEBUG
		//! MFC Dump
		virtual void Dump( CDumpContext& dc ) const;
		//! MFC AssertValid
		virtual void AssertValid() const;    // Override
	#endif
	//@}

protected:
	CPGLBarPtr m_pBar;
};

PGL_DECLARE_SMARTPTR( CPGLBarNumbering );

#endif // !defined(AFX_PGLBARNUMBERING_H__BEC4D835_87A8_40E5_A926_89AEC5060158__INCLUDED_)
